Scavenging (or resource borrowing) is a common approach used to harness unused resources to perform useful calculations. Since these are volunteer contributions from resource owners, it is vital to reduce the impact of scavenging activities on their native workload to a minimum. To this end, existing impact control systems are either overly conservative in stopping scavenging altogether or inflexible and lack user autonomy to regulate resource usage as in some priority-based techniques. In this paper, we propose a systematic impact control framework for resource scavenging, by quantifying the performance impact a scavenging application incurs on a set of tasks stressing different system resources. For a user-configurable impact threshold, the framework monitors the native workload, determines the dominating native task, and autonomically and adoptively throttles the scavenging application, to bring the impact below target levels. This novel approach has unique benefits of 1) making impact control explicit to resource owners and an easy-to-tune "knob," and 2) adapting to different scavenging applications and native workloads. Our experiments with two scavenging applications, which use resources in very different ways, demonstrate that this framework allows both more aggressive resource scavenging and less impact on native workloads at the same time, compared to a priority-based method. Finally, the framework itself is a lightweight user-level process whose monitoring overhead on native workloads averages as low as 1%.