Du kannst das mit einem Interrupt-Eingang lösen.
Einfach als Flanke parametrieren, dann machts nichts aus wenn
der Motor auf dem Taster stehen bleibt, gestoppt wird
dann ja nur bei der nächsten Flanke. Die Stop-Bedingung
für den Motor einfach in die Interrupt-Routine packen.
Schau in der Bascom-Hilfe nach "config int",
da gibts auch Beispiele.