The ADR engine calculates the link margin of a device and based on that, calculates how many steps the data-rate can be increased or tx power can be decresed until a “safe” margin has been reached where the device is still “connected”.
As non-static devices might move away from a gatway, ADR could have the effect of disconnecting a device. However, I think you could also implement a kind of ADR algorithm in your device code as it might be able to predict its movements. For this you can use the LinkCheckReq mac-command (initiated by your device) to check its connectivity. LoRa Server will respond to that request with the link margin. Based on sensor input (accelerometer, gps, …) your device could then decide if the margin allows to increase the data-rate. Note that I never tried this, but such a thing should work