When I upload code motor just starts spining until i touch botom button.
Well, that's what your code says to do. You calculate the desired position, which comes out to being POS_BOT. Your code says "if we desire to be at the bottom, and we are not there (bumper sensed), then run the motor". So that's what it does.
You'd find that if you uploaded your sketch during the time of day when the desired poisition is POS_TOP, it would run the motor the other way until the top button was pressed.
I mean - isn't your sketch doing exactly what it should be doing? You've told us what it does do, but not what it should do. Seems to me that everything is working exactly right.