The best way is to hold a reference to the IEnumerator and stop just that one, for example.
//IEnumerator object to hold coroutine
private IEnumerator myCoroutine;
//Assign IEnumerator to the coroutine
private void SomeMethod()
{
myCoroutine = WaitAndPrint(3.0f);
StartCoroutine(myCoroutine);
}
//Kill the specific instance of the coroutine set earlier
private void StopCoroutine()
{
StopCoroutine(myCoroutine);
}