I normally use bipolar stepper motors and a separate stepper motor driver that takes in just two signals, STEP and DIR, based on for example STSPIN220, DRV8834, A4988, et cetera. A4988 are the cheapest, as you can get them off eBay at ~ 1 USD apiece, but they need at least 8V for the stepper motor supply.
These step/dir drivers can handle different ranges of motor power supply voltages (A4988: 8-35V, STSPIN220: 2-10V, DRV8834: 3-10V, DRV8825: 8.2-45V), and they limit the current, typically set using a small potentiometer on the board. Stepper motors don't really have a specific voltage at all, they're rated for some range of drive currents instead.
Depending on the stepper motor, they take anywhere between 8 and 400 steps to complete a full turn; it is specific for each stepper. Some steppers, like 28BYJ-48, have a built-in gearbox, so their output takes even more steps (64 to 2048, depending on the gearbox).
Microstepping is when the driver chip does not do a full step on each rising edge of the STEP signal, but divides the step into smaller increments (almost always some power of two, like 2, 4, 16, 32, 64, 128, 256). It yields smoother motion, but again, you need more STEP pulses for a full turn the higher microstepping you use.
If you don't need a very specific movements (exact number of steps), you can use a PWM output (like those used with servos), except that it is the frequency, not the duty cycle, that determines the stepper speed.
Also, with steppers, you usually want end stop switches in the mechanism, so the microcontroller knows when to stop. This is particularly important if you use threaded shafts and linear motion; by itself, a stepper will not know when to stop (unlike a servo), and will try to break itself.
You can find a lot of Arduino examples and tutorials by searching for "stepper" "A4988" for example, for that specific stepper driver.
A common one is the ubiquitous 28BYJ-48 unipolar stepper motor with various gear reductions. The output shaft that pokes out takes 64 to 4096 steps to do a full turn, depending on the gearing in it. While it is an unipolar stepper (which is why it can be driven using ULN2003A), it can be driven using a bipolar driver as well. (If you cut the one trace on the tiny board, you can actually convert it to a bipolar stepper, but it isn't necessary.) A typical one needs 2038 steps for a full revolution (32 steps per revolution for the stepper itself, and a 1:63.68395 gearing), and can do about 100 steps per second, or about 3 FPS; ten times that for short intervals but not for continuous operation. Make sure your stepper does not overheat.
The smaller the current limit that achieves the movement you need, the better, of course – less heat and so on. The maximum coil current for 28BYJ-48's is about 120mA, but many run them at something like 50mA just fine.
Pololu STSPIN220 and DRV8834 and their clones would be best suited for this. To set the current limit, you'd set the driver to full stepping. The target stepper must be connected, but you put a multimeter in ampere/current mode in series between one of the driver outputs and the corresponding stepper phase. When enabled, the driver energises both coils to about 70% of maximum (sqrt(1/2)), so you turn the small pot until the current reads about 70% of your desired maximum. For example, for 100mA, you turn it so you see 70mA through the multimeter. (Remember, this is just half the total, so the total current draw per stepper is twice that, plus a bit for the driver.)
If only one of your steppers needs to be energised (rotating or holding its position) at a time, then you can wire all drivers to the same STEP and DIR pins on your microcontroller, but use a separate /ENABLE pin for each driver.
For best results, experiment. I like to always get at least two of each stepper I test, just in case I burn one. When I get similar ones from different sources, I use a multimeter the resistances between stepper phases match, and that they need the same number of steps for a full rotation.
The cheap SG90 micro servos I have (with transparent blue chassis), ubiquitous in Arduino projects, have about 20 oz-in of torque at 5V.
A 6001HB hobby servo has 93 oz-in of torque at 6V (using an one inch liftarm, can lift 93 ounces; using an 93" liftarm, can lift one ounce).
28BYJ-48 with the above gearing (see e.g. solarbotics) and limited to 140mA per coil (100mA reading in the multimeter), has about 11 oz-in of torque.
You can find steppers with a threaded shaft by searching for "stepper" "linear" at eBay, Amazon, AliExpress etc. I recommend you get one with the nut also provided, because the thread may not be standard at all. They vary from automatic lens adjusters (cylindrical, 4mm or 5/32" in diameter, maybe 12mm or 1/2" tall since the smallest ones have a gearbox too to get sufficient torque) up to NEMA 23 that weigh a kilogram or two, and are used in CNC machines and such.
The sturdiest stepper I have is a 270 oz·in NEMA23 stepper connected to a 80:1 NMRV worm gearbox. Basically, the output shaft should have something like 120 Nm (17000 oz·in or 90 ft·lb) of torque, if it does not break first (it's cheap aluminium job). (Antenna elevator for an Alaskan Arrow II for a friend.)