Ok I got it working. Arduino code for all. Just ask.

I found the common 28 byj48 with an 8mm coupler works well. Using the uln2003 driver board. I’m doing single stepping and get 1000+ steps per rev. All you do is remove the existing mm1 shaft and either replace or cut off the knob. Stick that in the coupler and hook to stepper. Mount the stepper so it can’t turn. That’s it.

now my code is using an encoder and controls each axis by itself. No reason you can’t send gcode, use pots, etc….
this has 6 steppers so xy in three mm1 is covered.

you could add a camera or beam splitter to detect the best beam overlap. You could measure divergence and add a z axis for a telescope. You could…..just about anything.

my code uses 2% of memory so you got lots of headroom. There are no delays called. The encoder is double interrupt tied.
I used the mega2560 r3 as it had lots of digital pins.

one last point! Use a separate supply for the steppers. If you try using 6 steppers on the micro power supply it will melt. Ask me how I know.

if I can figure this out a bacteria can. Last shout out the Rob Mudryk and Chris Short for help learning to code.

This works.