Adjusting the Z end stop?
Typically a machine will rapid to find its software stop(s), retract and slowly find its mechanical end stop. Please regard the RepRap Wiki for general troubleshooting and basic technical information.
If I'm understanding your post correctly, it seems that this is normal. Are you experiencing any adverse affects in your printing or motion? If not, then I'd assume everything is fine with that part of the machine.
The problem with this theory is that a "software stop" can only exist relative to an assumption of mechanical position - which in these systems would come from a previous homing. So if the issue were as your described, it would only happen once, unless the steppers themselves were losing position in operation. After a homing to the switch, the software's sense of position would be close to the machine's actual state and the next homing would work correctly.
What is the difference between software and hardware stops? Aren't both the move up and the move down intended to find the mechanical endstop (where the move up is intended to improve precision and reliability compared to what you'd get from just moving down)?
I have just come across this answer, referring to software endstops. tbm0115 and @TomvanderZanden, would either of you like to comment/answer this question Anet A6 Z-axis min endstop not triggering as comments and answers are saying that there is no such thing as software endstops. It might be an idea to clarify the situation. I am also confused as would like to see more opinions. I have added a comment to that question referring back to here.