Arduino 12VDC motor controller with limits

To make it easy for people to help you please modify your post and use the code button </> so your code looks like this and is easy to copy to a text editor. See How to use the Forum

Rather than this style

 if (UpButtonState == LOW && UpperState == HIGH)  {

you need to use the button press to set a variable for upward movement which only gets reset when it actually gets to the top. Something like

if (UpButtonState == LOW) {
   moveUp = true;
}
if (moveUp == true) {
   if (UpperState == HIGH) {
      // code to move up
   }
   else {
      moveUp = false;
   }
}

...R