I mainly combine AccelStepper and SpeedStepper into one. So one can not only make stepper move to certain position with acceleration and decceleration as AccelStepper features(I call it position mode), but also make stepper accelerate or deccelerate to certain target speed and maintain it as SpeedStepper features(I call it infinite mode). Of course, only one mode can be executed at one time but you can switch between these two at anytime. One can refer to example "Bounce" for position mode control and example "MultiTargetSpeed" for infinite mode control.