You can also opt to drive them with pseudo microstepping drives instead (at added cost/complexity).
But most of these can be addressed in design.
We looked at a lot of rotary motors for an industrial automation project I was involved with (ages ago). The big advantage stepper motors have over synchronous and DC servo motors is they are designed to be *stopped* -- and exert significant holding torque (25Nm in our case).
[Most motors are designed to be in motion!]Getting this sort of performance from a synchronous motor or DC servo required adding gearboxes and active brakes. And, then having to address the wind-up in the gearboxes when you wanted to change direction, as required by a governing control loop.
Where they really fall short (besides cost and drive complexity) is in higher speed "running" applications.
[OTOH, you can monitor back EMF to get some feedback of the rotor's physical position and use that to determine the instantaneous acceleration available to you (so you don't have to be overly conservative in rating the acceleration/speed/load profile). You can approximate the performance of a BLDC with such a technique (without having to mount encoders on the shaft(s))]It's sort of the difference between driving a drift car and a bulldozer -- totally different use cases.