There are dynamic DNS services that will change a url to the dynamic IP automatically. You then can just set the "server" of your connection string to the domain and as long as the IP stays up-to-date it will work.
Depending on what your connection is at home (cable/dsl) you may have a much more statis IP than you think. I have a cable modem which does have a dynamic IP but I have my domain pointed at it and it very seldom changes. Typically, if the modem is connected all the time it won't change IPs. Usually I'll see it change when I turn it off for more than a few minues. It has mainted the IP thru restarts, short power outages, etc.
(Please note this disclaimer: Depending on your agreement with your ISP you might be violating your service contract by running a server or server-like services [i.e. database] on your connection.)
You do need to expose your server at home thru your internet connection.
If your computer is connected directly than you don't need to change anything with the hardware but you will likely need to change your OS firewall settings to allow requests for SQL server to come in.
If you have a router on your connection then you need to open the SQL port to point to your desktop at home. You'll have to refer to your router instructions for details.
The standard SQL server port is 1433. Just keep in mind that you are opening your database server to the world so make sure you have very string passwords for the accounts (most importantly the SA account).