You don't need a static IP. Just a name. I use wireguard on all of my devices connecting to the wireguard host on my router by name.
If your remote endpoint address changes, the only way your client will find out is either if you restart the tunnel on the client device by hand, or in the lucky case, if the remote endpoint happens to send some data to you at the right time while your client is still hopefully reachable at the same IP+port, which may not be a given behind a NAT if a port mapping times out from inactivity or if it changed network in the meantime.