But I don't know how to classify larger molecules like HOCH2CH2CH2CH2CH2OH because now that they can constantly rotate about each single bond axis at certain times I think the bond dipoles would cancel and at other times it could be super dipole (when the two OH groups point in the same direction) and so on.
What you do is take a time-average. A simple molecule like 1,2-dichloroethane is polar to some degree because of free rotation around the C-C bond. The most sterically favorable conformation is staggered, which would be non-polar because the dipoles would cancel. However at ambient temperatures there is enough energy for the molecule to rotate, so the gauche or eclipsed conformation can be accessed, and these conformations are polar because the chlorines now are on the same side of the molecule. Therefore trying to generalize "symmetric" molecules as being nonpolar is something of a potential trap, because molecules aren't frozen into a single position. Not to mention, most molecules have some kind of symmetry, and many of them are polar (chlorobenzene, for example, is symmetric and also polar: it has a mirror plane through the plane of the ring, and also a perpendicular mirror plane that bisects the chlorine). Finally, even "perfectly symmetric" molecules have transient polarity due to electron density fluctuations - these give rise to van der Waals forces that hold hydrocarbons together in liquid phase.
The best way to determine polarity of a given molecular conformation would be to define the center of the molecule as the origin, calculate the charge density on each atom and assign as a vector. If they all add to zero: nonpolar. If they don't: polar. The magnitude of the dipole sum would be the overall dipole moment of the molecule, which would determine the magnitude of the degree of "polarity". This would be complicated by identifying a molecular "center". If you don't care about the magnitude of the moment, a shortcut way is to assign the molecule to a point group and use a character table to quickly see where permanent dipole moments would be likely to be - but as I said this would tell you nothing of scale. Even both of these solutions though would describbe but a single conformation of the molecule. To determine a real polarity, you would need to take a time average of the dipole moment over ALL conformations accessed at a particular temperature and solvent system. That's no easy problem...
To answer the opening post, unfortunately there is no simple algorithm for determining molecular polarity. It's really something you just come to recognize through experience. The wikipedia article linked to earlier provides some general guidelines on how to predict polarity. They are fairly straightforward.