解決したようで何よりですが、後から見て自分のコードがいまいちに感じた(変数Dの扱いが気持ち悪い)ので一言補足というか別案を。
こんな感じに与えられた角度を-180~+180の範囲に変換する関数を用意して、
DEF NORMANG(A)
WHILE A<-180:A=A+360:WEND
WHILE A> 180:A=A-360:WEND
RETURN A
END
-180~+180の範囲を超える可能性がある角度の値(ROTの値やSTCとROTの差など)はこの関数を通して、その結果を判定するようにした方が綺麗だし汎用性がある(例えば差の大きさで回転速度が変動するようにしたり)かなとも思います。