A stepper motor (or step motor) is a brushless DC electric motor that divides a full rotation into a number of equal steps. The motor's position can then be commanded to move and hold at one of these steps without any feedback sensor (an open-loop controller)
This makes it a good fit for robotic and automation projects, because accurate positioning is possible without much complexity.
Since "steps" are relative - a known location with a switch is often used to employ a "reset" function. If the system does not know where the motor is, the first activity is to trigger the reset. At this point steps can counted for accurate positioning.
References
4 wire stepper
[[Stepper.py]]