Thank you both!
I guess the issue we're having is just keeping track of the position based on time. So say we power it for .5 seconds for difficulty level 1. Then the next input is difficulty level 4 without going back to "home position", we're just having trouble getting it to remember that it was at difficulty 1 previously before going to difficulty 4. I guess we'll just need to add more variables to store the previous difficulty, and have a time associated with each difficulty, say 2 seconds for difficulty 4. Subtract the "old selected difficulty" from the "new selected difficulty" so it will know to power for 1.5 seconds in this case.
I do agree, it will accumulate error if the calculations are incorrect since if we're off at position 1 then we try to move to position 2 based off of position 1 then the error will add. If we are having a lot of error then we will resort to going to a home position before moving from one difficulty to the next.