Before starting any hobby project the question to ask yourself is, "what is the end goal of this project"? Is it to create the next big thing? Is it to learn something which can enhance your resume? Is it simply to broaden your horizons as a developer? Without knowing the answer to that question, I've found motivation to be a challenge. Sure I could learn C or LISP or Python or Ruby or something else, but what's the point? Why am I bothering? What's driving me to continue to do it? If the answer to that question is "I read in someone's blog that I should learn this", I've found that to be an easy way to start a project but not to finish it.
So in my opinion, first be completely honest with yourself about your goals for any new hobby project. Layout all of the objectives honestly and then stick to them. Only then will you be motivated enough to see it through to completion.
Also, don't fool yourself into changing your objectives mid-stream. This will only set you up for failure. Say, for example, that your initial objective was to create a web site for a family member's business. Then, after some initial success, you decide that you can create the ultimate website for anyone's business. Right then you've both changed the scope of your own project and the objective of your project. Simply having success with said family member's business is not "good enough" anymore. You've now chosen to conquer the world. This line of thinking discourages you from both completing your initial objective and having success in what you initially set out to do. Ultimately, you fail at both.