First and foremost bug your ISP to give you a static IP.
You can not expect to reliably send or receive email from a dynamic IP. Sending may be less of an issue since you use a 3rd party to relay your outgoing email. However incoming email will become a problem every time your ISP changes your IP. Then you have to change DNS records accordingly or you may not be receiving email anymore.
The reason is that MTAs (aka email servers) use DNS in order to find the destination server. Say your server is at mail.example.com and someone is trying to send email to email@example.com. The outgoing MTA will look up the MX record(s) of example.com (and lacking any MX records may fall back to try and resolve example.com instead) and then tries to find the IP(s) those MX records resolve to and then contacts that server, if you have multiple MX records it will try them either based on priority or round robin (if priorities are equal).
If the IP has changed it can not contact your server and will fail to deliver your email, I believe this normally should be a temporary failure, becoming a permanent one when the problem persists.
Based on it being a temporary failure there may be a work around, but it is flaky at best. If you set your nameserver's TTL to half a day or an hour or so, then when your ISP changes your IP you can then change that in your nameserver(s) and the internet may pick it up within a few hours. Since the email protocol (SMTP) has built in redundancy email servers will retry for a while before permanently failing (normally in 5 days give or take).
However, your TTL may be ignored and nameservers will keep using the old IP until they think it's time to refresh, if ever. So this method is pretty much a lame stopgap until you managed to get a static IP.
Update: With regards to running a nameserver. The way I have done it when I ran just one nameserver (and moved to two nameservers) is to create 2 entries, say ns1.example.org and ns2.example.org and just have them resolve to the same IP where your nameserver is running. Then tell your registrar you manage your own domains and submit the 2 nameserver addresses. If ever you get a second nameserver it's just a matter of changing the IP in the DNS records, so you could change ns2.example.org to point to the new IP.