Hi Anthony.
I do not know your device, specifically the mechanical coupling of the stepper motor, the motor driver or the software you are using.
If you are using Joe Herman software, it may be that the motor is coupled to the projector in a way that rotates the projector shaft in reverse.
The problem is easy to solve via software.
The motor driver has an input signal that tells the motor the direction of rotation.
I've had a look at the (Joe Herman) software.
In the server software you can find the file control.py, where the instructions for controlling the engine are. You will notice that there are instructions like the following:
GPIO.output (self.dir_pin, True)
This instruction is what determines the direction of rotation.
To reverse the direction of rotation you will have to replace these instructions with the following:
GPIO.output (self.dir_pin, False).
And conversely, the original instructions GPIO.output (self.dir_pin, False) will have to be replaced by GPIO.output (self.dir_pin, True).
To solve the problem of incomplete revolution, in the same file there is a variable steps_per_rev, that is, the number of steps required by the motor to give a complete revolution. That will depend on how you have your driver configured. Once you have determined the appropriate parameter for your device, you must give that variable that correct value.
In the control.py file it appears:
steps_per_rev = 200
In your case, the value 200 is incorrect and you must replace it with the appropriate value for your case.
I hope I have clarified the matter a bit.
Lucky.