You can alter your web host if he is not good with their service so moving a web site to a new host is not as difficult as you may think. If you follow the tips below carefully you should be fine and have your site up in no time at all.
So you should define your own requirements before hand and look for a hosting plan that match closest to your soon to be old web host. A 24/7 support with phone support is a must! Try to find a host that uses the same operating system as your existing host. Get a web host that has a fast Internet connection and has fast servers and good up time.
Make sure if you use php, CGI, Perl or ASP that your new web host supports it. On php make sure they support all the php functions you need and make sure they have all the Perl Modules that you need to use or plan on using. Many scripts need Mysql, so check to see if they support that as well.
Backup should be done regularly and not during any major change like moving your site. Make sure you backup everything on your site or you risk losing it all! Save all of your site's files on a disc or you could signup for a data storage service and they will save it for you.