You are right, these data might likely be overdispersed. Quasipoisson is a remedy: It estimates a scale parameter as well (which is fixed for poisson models as the variance is also the mean) and will provide better fit. However, it is no longer maximum likelihood what you are then doing, and certain model tests and indices can't be used. A good discussion can be found in Venables and Ripley, Modern Applied Statistics with S (Section 7.5).
An alternative is to use a negative binomial model, e.g. the glm.nb()
function in package MASS
.