So this tutorial says the maximum speed the Arduino can handle is about 127,000 pulses per second. The encoder fires 4 pulses per step. I think the 200 step encoder from Sparkfun would be a better choice (and lines up with the resolution of most steppers).
https://www.sparkfun.com/products/10932
There will be 200x4 = 800 steps per revolution. So 127,000 / (200 *800) = 158.75 RPM maximum spindle speed. Lets say 150 rpm design maximum.
With a 90:1 rotary table, and assuming maximum design RPM of the stepper was 360 rpm, the fastest as standard RT can rotate is 4 rpm (360/90) unless you add some sort of geared drive. (I've seen some RT's driven by a timing belt ). I think this says you'd need to build a dedicated spindexer type fixture. I think my minimum spindle speed is about 90 RPM so a 10:1 ratio needs 9RPM on the RT.
If you assumed that the inertia of the spindle slowed the RPM enough so the software always caught up when the direction changed (pretty safe assumption I think), The interrupts just need to be modified to maintain the Direction of the stepper (DIR).
For simplicity, lets assume a direct drive and you want a 10:1 ratio, all the Arduino needs to do in the main loop is to check the encoder accumulator, you'd need something like this.
Code:
if(EncoderCount >= 10){
DriveStepper(dir, 1); // Output 1 step in current direction set by interrupt.
EncoderCount -= 10;
}
This is way simpler than a dividing application. I think it would be best to be a dedicated Arduino for the task. Remember to use the timer interrupt to drive the stepper motor.....