Stepper motors are unique among electronic motors in that they move in a series of discrete steps (hence their name) rather than a continuous motion. This is a useful property since it allows steppers to have positional and velocity control that is both accurate and easy and doesn’t even require feedback to maintain (under normal operation). However, one of the primary disadvantages of this style of motor comes as a direct result of this discrete nature and open loop control.
When a stepper takes a single step, it will overshoot its target destination slightly and will oscillate a bit before settling down on target. This is due mostly to the inertia of the rotating mass briefly overpowering the magnetic field of the motor. This isn’t a big deal by itself but when you start chaining multiple steps together to get a larger movement this oscillation occurs at each step taken on the way. If the frequency that the controller is outputting new step commands to the motor matches the natural frequency of the motor then the oscillations will tend to become more severe as they propagate through the motor. Eventually they are so large that they will overpower the magnetic field for long enough on a given step to miss the subsequent step command, and you begin missing steps. Since steppers are typically run in open loop, the controller has no knowledge of these missed steps; The result is the motor will not get to its destination successfully. The effect can become so pronounced that the motor loses torque completely and stops rotating. Depending on the synchronization of the steps, it can even reverse the direction of rotation.
Why are steppers still so popular then? As bad as this issue sounds, there are a few mitigating factors. First, this phenomenon is only problematic at the stepper’s natural frequency. This means that it will only be at work in a certain velocity band. Depending on what speeds you are running your motor at, you may never even notice it at all! Second, the resonance takes time to build up. It’s not like you will hit a bad velocity and immediately lose torque. The oscillations will take a few seconds to get to the troublesome levels. Since this issue only crops up at certain velocities, you can typically accelerate through a bad region and emerge unaffected on the other side. You are only at risk if you are staying in the bad region for extended periods of time. Finally, this effect is greatly reduced by having load on the motor. If the motor has load on it, then the inertia is much greater and the oscillations will be reduced substantially. Notice how in the video, when I apply some pressure with my hand (effectively loading the motor down) it starts operating normally again. You are far less likely to experience ringing on a motor that is loaded than on one that is not. This is good since the vast majority of the time the motor will be loaded (what are you using it for after all?).
There are commercially available dampers, like the MDR Damper Roll and Nema17 Dampers, that act sort of like a flywheel that can be attached to the rear shaft of a stepper to artificially load it down to combat ringing, if necessary (though I cannot speak to their effectiveness).
Overall, provided you know about the problem it is fairly easy to avoid. The best thing to do when you get a new stepper is to quickly run it through the available velocity range and find where the motor has trouble keeping torque. That is the region you should avoid in your application.