You could calculate the number of actual steps from theoretic steps using:
unsigned long actual_steps = theoretical_steps * 283712 / 4455 ;
and then you'll only ever be 1/4000 of a revolution out (which is less than the 1/1000 requirement).
It is indeed an annoying gear ratio!