I have done this before with an Arduino Uno. But instead, it was painless Using GRBL code uploaded into the Arduino. Then using the open source GRBL panel for windows on a laptop.
This allows you to set all of the motor parameters for max speed, max acceleration, and a couple dozen other parameters. I forgot to mention that I used a CNC shield to drive the motor, but you can use yours with a USB interface to the stepper controller, this also allows you to choose the pulse burst rate, which is not the rate at which micro steps are sent to the motor, but rather the buffered pulse step rate. This technology is as old as ST 506 HDD’s from the mid 80s.
Then you don’t need to write Arduino code, and focus on your application using Gerber commands like seek from XY to XY2 or draw a circle or seek home and recalibrate.