Guide on Accelstepper

In the stepper libraries, you adjust the speed by adjusting the timing between steps. The max speed setting can prevent the user from using intervals that are too short for the motor to respond, which causes it to skip steps.

You can set a lower limit in your code by defining the maximum interval between steps.

The library will let you create seperate stepper objects, one for each motor, which can be controlled seperately.

Programming acceleration/deceleration is complex. You want the library for that.

best,
Michael