One of the easiest and inexpensive way to control stepper motors is to interface L298N Motor Driver with Arduino. It can control both speed and spinning direction of of any Bipolar stepper motor like NEMA 17.
If you are planning on building your own 3D printer or a CNC machine, you will need to control a bunch of stepper motors. And having one Arduino control all of them is not a good option. Instead, it is recommended to use a dedicated stepper motor driver like A4988.