"cute" is used for girls who are reasonably good looking, have good personalities, you can spend time with them, and you would be happy to have a long term relationship with.
Hot would normally be the object of lust rather than love. you're more likely to just have a 1 night stand with a "hot" girl - if even that.
I dont know if this is everyone's definition. However, in answer to your other question, yes Cute is a compliment. In fact, i know some of my female friends would much prefer to be called "cute" rather than "hot".