Perhaps a way to do it is reset the consensus for a relay if its IP address moves to a different Autonomous System.
Is rare that dynamic IP causes relays to hop ASs (e.g. possibly SBC/ATT), and list of exceptions could be created for the few cases where it causes trouble.
CYMRU has a dynamic service for looking up AS from IP.