When should I start solving more difficult problems?

I have solved some problems from the easy section and I find them fairly easy to solve. Should I continue with the problems on the easy section solved by the lowest amount of people or should I switch to the medium section and continue on from there?I would like to increase my skills for the competitions. Is there a “perfect” time to switch to the more difficult questions or is it based only on when you feel ready to advance?

when you feel that solving easy is waste of time then you should go for medium .

i personally feel now is the time you should stop doing random questions (i.e. section-wise qns). It is not necessary that even after a large amount of practice you would be able to solve all the easy qns. It would be better if you started focusing on specific algorithms and solving questions pertaining to them. Also, start taking part in live contests on all sites, especially codechef, codeforces and topcoder. This would not only help you increase your speed and efficiency, but would also expose you to new algorithms which you can learn through editorials.
Refer to my answer on this question.

Do you mean that when I get good enough to actually solve a problem without much thinking?

yes when you can think of the problem quickly and code it and you feel that concepts are being repeated .