Is there any way to have a step not download artifacts if it doesn't care about them? For example, if Step A produces artifacts that Step B then uses, and Step C doesn't care about them at all, I am able to disable downloading the artifacts in Step C to save build time?
At the moment there is no support for configuring when an artifact is (and isn't) downloaded at a per step basis. A step will always attempt to download the artifacts defined in previous steps.
If you'd like, you can open a feature request for this here: https://bitbucket.org/site/master/issues/new