Can I use SPF with a dynamic IP address?
Yes. There are many dynamic IP address services that will let you set up a hostname for no or low cost, for example No-IP and DynDNS. Typically a software client is installed on a PC that is using - or is behind a router using - the public dynamic IP address. This client checks at regular intervals to update a chosen hostname to point to the current IP address. Typically the TTL or time-to-live from a dynamic IP service is very low to allow for quick changes once the dynamic IP address changes.
In your SPF record, reference the dynamic IP address using the hostname, for example: a:name.example.com.
However, with any dynamic service there is always a risk that things will be out of sync. As an example, if you send a message to a server that is backlogged and then that server does an SPF check as part of its post-SMTP spam filtering process (SpamAssassin does this) somewhat later and your IP address has changed in the interval, then the SPF check will fail. Operating a mail server on a dynamic IP address is problematic for a number of (mostly non-SPF) reasons. This is only one.
Also note that many ISPs use Spamhaus' Policy Block list (or, like AOL, their own list) and do not accept mail from dynamic IP addresses.