First, they could often be used as synonyms and few people would notice. However, they are not quite the same. 'Improve' means making an existing thing better. 'Enhance' means adding to an existing thing to make it better. For example, if I regularly buy a product and one day I notice the packet has 'Improved' written on it, I will assume it is basically the same but better. If it says 'Enhanced', I will assume that it has an additional feature. Also, if something is bad, it can be improved to become good. We can only enhance what is already good.