Here is a slightly modified version of the previous code, It has some fixes to it (my bad on the timing of the loop

) the lift motor (linAct) is now updated in the loop to prevent anything from getting out of phase.
Code:
http://imgur.com/tTE7fif
Could you elaborate why resetting the encoder to zero when the lift is physically at its low point is bad. I don't quite understand. As far as the upper limit switch I can make it a last resort thing.
Thanks for the help.