Quantity   Component name
1 × Raspberry Pi
1 × Stepper motor and driver I used Velleman VMA401, which had both motor and driver. The motor is small enough to drive off the Raspberry Pi 5V pin. Manufacturer's page: https://www.velleman.eu/products/view/?id=435560
1 × Opto-fork (a.k.a. photo-interruptor) May be substituted with another sensor, such as micro-switch (if you can stand to fine-tune the placement - I don't) of hall-effect sensor and magnet. Note that Raspberry Pi uses 3.3V, so I used an open-collector output version. Namely, I used OPB911W55Z : https://www.digikey.com/product-detail/en/tt-electronics-optek-technology/OPB911W55Z/365-1773-ND/1637503
1 × Jumper wires with 2.54mm header connector You'll have to splice and solder a few, so get good ones. E.g. https://www.adafruit.com/product/266
1 × 150 ohm resistor For limiting current to opto-fork's built-in LED. This value works with the listed opto-fork. You'll have to re-calculate value for other forks.
1 × 10k ohm resistor (10,000 ohm) For pull-up of opto-fork output. May be omitted if opto-fork does not have open-collector output.
1 × Heat Shrink Wire Wrap Works better than electrical tape, when the wires are this thin. Trust me. But if you only have the tape, that works too.
1 × USB power adapter and cable The Raspberry Pi and motor should together take less than 1A, so just about any USB power adaptor should work.