Truthfully, you would be better using http://TeamViewer.com
It will deal with getting through the home router.
If you want to roll your own, then this is what I had to do at my Mom's house (I did it at mine, but at my Mom's will simulate what you have to do).
First, I was able to go to Mom's to do the setup, If you are going to be doing this from across the country, it could be more difficult, but then again, maybe you could use TeamViewer.com to do the initial setup.
On Mom's home router, I had to tell the router to port forward a high numbered internet facing port to my Mom's iMac port 22. Port 22 is the ssh (Secure Shell) port. I could have opened a port to port 5900, but that is not as secure as ssh, which is why I did not do that.
If you do not know how to tell your family's home router to forward a high numbered port, then look at https://portforward.com for instructions on the specific router at the family member's home.
You will be telling the router to open a port on the internet side and connect that port to the family member's Mac port 22. The internet side port should be a high numbered port, something between10,000 and 65,000. You will be addressing that port. For the purposes of this example, I'll use port 54321
Once the family member's router is properly configured, you have the family member ask Google for the internet visible IP address. Just have the family member Google "what is my ip", and then give you the nnn.nnn.nnn.nnn number. Most ISPs keep the same number associated with a home, unless they loose power, or power cycle their cable modem.
Have the Family member enable System Preferences -> Sharing -> Screen Sharing
Have the Family member give you their short Unix username, and password. They can find the short name by starting up
Applications -> Utilities -> Terminal, then enter the command
echo $USER
This should be the Admin Account if you are going to be doing admin things on their system.
Once the family member's router is configured to port forward, and you have the IP address for their router from their Google query, you do the following
From an Applications -> Utilities -> Terminal session
ssh -L 25900:localhost:5900 -p 54321 nnn.nnn.nnn.nnn
Username: their_short_unix_name
Password: their_password
where nnn.nnn.nnn.nnn is the IP address they gave you. 54321 is the high numbered port forwarding number used when setting up their router. And 25900 is just a local port number on your system that you will be using shortly
At this point you are logged into their system at a Unix command line. There are lots of things you can do from here, but it you are not a Unix'y kind of person, best be careful, because there are very few "Safeties" to protect you from breaking things at the command line.
Now to start a Screen Sharing session. From your Mac
Finder -> Go -> Connect to server -> vnc://localhost:25900
The vnc:// tells the Finder to start a Virtual Network Connection, which in Unix terms is a way to control a remote system's screen. On the Mac this causes Screen Sharing to startup. The localhost:25900 it should connect to port 25900 on your Mac, which above you established as the local side of the tunnel going to your family member's port 5900 (the standard VNC port)
At this point if all went well, you should be seeing your family member's screen, and your mouse and keyboard will control their Mac. If they are not logged in, you will be able to login. If they are logged in, you will see what they are seeing, and you can both fight for where the cursor is positioned, and what you type, etc....
It would actually be best to experiment on your own system, ASSUMING you have more than 1 Mac at home. You can configure your own home router, to port forward to another Mac in your home, then go through all the steps to prove yourself you can make a connection.
Going out and back into your router or going from a local coffee shop back home will not matter with respect to distance, as going to your family member is just the internet and that all just works.
My Mom is 300 miles away. I've connected to my own home from work, from local coffee shops, from Florida (maybe 1,000 miles away). Once it works, distance does not matter.
But getting it to work is the fun part.
If you want a dynamic DNS name, you can get one of those from No-IP.com for free, but every month you have to tell them you still want to use your free dynamic DNS name. Or if this proves very valuable, you can by a dynamic DNS name. Using dynamic DNS name requires you either have dynamic DNS support in the remote router, or that a Mac in the home runs a program from No-IP.com in the background to keep No-IP.com up-to-date on what the homes IP address is, just in case it changes.