My biggest concern is returning to home when the joystick is released (like a servo).
I would just use a servo but I have a stepper motor that does 17 ft-lbs and good luck finding a servo that does that.
With a stepper motor you will need a limit switch so that the Arduino can establish the HOME or ZERO position at startup. In other words the motor needs to move step by step until it triggers the switch and then the Arduino knows where it is.
I sell a product that uses a very small RS-775 DC servo motor (12VDC, 40A, roughly 1.75" OD x 2.5"L), to generate well over 30-ft-lbs of torque.
Servo motors are capable of FAR greater torque than stepper motors, which is why, on industrial machines, you won't see any very large stepper motors,
A stepper motor, properly used, will ALWAYS be where you command it to be, unless you over-load it. If you over-load it, it will be off-position, as would a servo motor under the same conditions. Regards,Ray L.
#include <AccelStepper.h>#include <Encoder.h>