These terms are often used interchangeably, but they are different. Stock is water or other liquid in which vegetables, meat, bones or all of them are simmered over a long period to extract flavors, then the solids are removed. Stock normally contains no salt and is not soup. Stock is not meant to be eaten until it is combined with seasonings. Dried stock cubes are called bouillon cubes.
Broth differs in that it is a basic soup where the solid pieces of flavoring meat or fish, along with some vegetables, remain. It is often made more substantial by adding starches.
Soup is a liquid savory food which can be thin, as in broth, or thick with other ingredients added.