Given the choice of interning for big-reputable-software company X or for small-startup Y, which one would you suggest? Company X will most probably lead to a full time offer but I may not be working on interesting/challenging projects. On the other hand startup Y will definitely give me difficult problems to solve and I will learn a lot. Comments, opinions, suggestions.
Interesting work at this stage of your life beats stability any day of the week. Take the startup and run with it. You can always go to work at big-reputable-software company later, but you can't always get an interesting opportunity.
Company size and the interesting-ness of the work are probably orthogonal, unless you are strictly interested in entrepreneurial activities. So pick the interesting project, and later on if the startup goes bust you'll still be able to get a job at a company that values that prior learning experience.
I would suggest going with the what. An internship is a great opportunity to discover things about the problem you are working on and about yourself. Given that youre likely starting out your career, make sure its headed in a direction which you find exciting.